<?php

class SqlEditarPadrao {

    public function Executa() {
        $retorno = array();
        $trataDados = new TrataDados();

        if (!$trataDados->pegaDados()) {
            $retorno['resultado'] = 'dados_errados';
            $retorno['dados_errados'] = $trataDados->getErro();
            return json_encode($retorno);
        }
        
        $tabelaModulo = $trataDados->getModuloTabela();
        $tabela = $trataDados->getTabela();

        $modulo = explode(".", $tabelaModulo);
        $tabelaEmPartes = explode("_", $tabela);
        $nomeClasse = str_replace(' ', '', ucwords($modulo[0] . ' ' . implode(" ", $tabelaEmPartes))) . 'Executa';

        try {
            $pdo = Conexao::open('sistema');
            $dados = $trataDados->getDados();
            if (!class_exists($nomeClasse)) {
                throw new Exception("Class {$nomeClasse} nao encontrada");
            }

            $dados["id_{$tabela}"] = $trataDados->getIdTabela();

            $classe = new $nomeClasse($pdo);

            $classe->editar($dados);

            $retorno['resultado'] = 'sim';
            $retorno['retorno'] = 'editar';

        } catch (PDOException $e) {
            new Excecao($e);
            $retorno['resultado'] = 'erro';
            $retorno['erro'] = 'editar';
        } catch (Exception $e) {
            new Excecao($e);
            $retorno['resultado'] = 'erro';
            $retorno['erro'] = 'class_nao_definida';
        }
        return json_encode($retorno);
    } 
}